package com.example.demo.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.example.demo.entity.LoginEnity;

public class JWTUtil {
	private Logger logger = LoggerFactory.getLogger(getClass());
	
	/**
	 * @param logininfo
	 * @return
	 * @创建时间 2019年6月8日
	 * @创建人 许子文
	 * @功能描述: 生成token
	 */
	public static String createToken(LoginEnity logininfo) {
		String token = null;
		
		String login_id = logininfo.getLogin_id();
		
		String password = logininfo.getLogin_password();
		
		String loginTime = DateUtil.getNowDateTime();
		
		token = JWT.create().withClaim("login_id", login_id).withClaim("loginTime",loginTime).sign(Algorithm.HMAC384(password));
		
		return token;
	}
	
	/**
	 * @param token
	 * @return
	 * @创建时间 2019年6月9日
	 * @创建人 许子文
	 * @功能描述: 根据token获取登陆id
	 */
	public static String getLoginId(String token) throws Exception{
		String userid = JWT.decode(token).getClaim("login_id").asString();
		
		return userid;
	}
	
	public static void main(String[] args) throws Exception {
		LoginEnity user = new LoginEnity();
		
		user.setLogin_id("super");
		user.setLogin_password("superAdmin");
		
		String token = createToken(user);
		
		System.out.println("token生成="+token);
		
		System.out.println("解析token出login_id="+getLoginId(token));
	}
}
